// 扩展的奥数知识点数据
// 基于全网搜索和奥数网站内容整理

export interface Topic {
  id: string;
  name: string;
  description: string;
  gradeLevel: number[];
  difficulty: number; // 1-5级难度
  category: string;
  prerequisites?: string[];
  examples: string[];
  keyPoints: string[];
}

export const EXTENDED_TOPICS: Topic[] = [
  // 基础计算类
  {
    id: 'chicken-rabbit-cage',
    name: '鸡兔同笼',
    description: '经典的逻辑推理问题，通过假设法解决多元问题',
    gradeLevel: [3, 4, 5],
    difficulty: 2,
    category: '基础计算',
    examples: [
      '鸡兔同笼，共有头35个，脚94只，问鸡兔各多少只？\n\n【解题思路】\n\n第一步：理解题意\n• 鸡有1个头，2只脚\n• 兔有1个头，4只脚\n• 一共35个头，94只脚\n\n第二步：用假设法求解\n假设35个全是鸡：\n• 应该有脚：35 × 2 = 70只\n• 实际多了：94 - 70 = 24只\n\n第三步：计算兔子数量\n• 每只兔比鸡多：4 - 2 = 2只脚\n• 兔子数量：24 ÷ 2 = 12只\n\n第四步：计算鸡的数量\n• 鸡的数量：35 - 12 = 23只\n\n第五步：验证答案\n• 头数：23 + 12 = 35 ✓\n• 脚数：23×2 + 12×4 = 46 + 48 = 94 ✓\n\n【答案】鸡23只，兔12只\n\n【小贴士】\n• 也可以假设全是兔，方法类似\n• 关键是找到"每只兔比鸡多2只脚"这个关系\n• 验证答案是必要步骤，可以检查计算是否正确',

      '停车场有汽车和摩托车共50辆，轮子共140个，求各多少辆？\n\n【解题思路】\n\n第一步：理解题意\n• 汽车有4个轮子\n• 摩托车有2个轮子\n• 一共50辆车，140个轮子\n\n第二步：用假设法求解\n假设50辆全是摩托车：\n• 应该有轮子：50 × 2 = 100个\n• 实际多了：140 - 100 = 40个\n\n第三步：计算汽车数量\n• 每辆汽车比摩托车多：4 - 2 = 2个轮子\n• 汽车数量：40 ÷ 2 = 20辆\n\n第四步：计算摩托车数量\n• 摩托车数量：50 - 20 = 30辆\n\n第五步：验证答案\n• 车辆数：20 + 30 = 50 ✓\n• 轮子数：20×4 + 30×2 = 80 + 60 = 140 ✓\n\n【答案】汽车20辆，摩托车30辆\n\n【小贴士】\n• 这道题和鸡兔同笼是同一类型\n• 把汽车看成"兔"，摩托车看成"鸡"\n• 方法完全一样，只是换了个场景'
    ],
    keyPoints: [
      '【核心方法】假设法\n• 假设全是鸡（或全是兔）\n• 计算脚数差异\n• 用差异求出另一种动物的数量',

      '【关键公式】\n• 兔数 = (实际脚数 - 假设全是鸡的脚数) ÷ (兔脚数 - 鸡脚数)\n• 兔数 = (实际脚数 - 头数×2) ÷ 2\n• 鸡数 = 头数 - 兔数',

      '【解题步骤】\n1. 假设全是鸡，算出脚数\n2. 用实际脚数减去假设脚数\n3. 多出的脚数除以2，得到兔数\n4. 用总头数减去兔数，得到鸡数\n5. 验证答案是否正确',

      '【易错提醒】\n• 不要忘记验证答案\n• 注意单位：头、只、脚\n• 除法要除尽，如果除不尽说明题目有问题'
    ]
  },
  {
    id: 'sum-difference-multiple',
    name: '和差倍问题',
    description: '利用和、差、倍数关系求解两个或多个数的问题',
    gradeLevel: [3, 4, 5],
    difficulty: 2,
    category: '基础计算',
    examples: [
      '甲乙两数的和是48，差是28，求甲乙两数\n\n【解题思路】\n\n第一步：理解题意\n• 甲 + 乙 = 48（和）\n• 甲 - 乙 = 28（差）\n• 甲比乙大，所以甲是大数，乙是小数\n\n第二步：画线段图帮助理解\n甲：|————————————|\n乙：|————————|  （比甲短28）\n\n两条线段加起来 = 48\n两条线段的差 = 28\n\n第三步：用和差公式求解\n• 大数（甲）= (和 + 差) ÷ 2\n• 大数（甲）= (48 + 28) ÷ 2 = 76 ÷ 2 = 38\n\n第四步：求小数\n• 小数（乙）= (和 - 差) ÷ 2\n• 小数（乙）= (48 - 28) ÷ 2 = 20 ÷ 2 = 10\n\n或者：小数（乙）= 和 - 大数 = 48 - 38 = 10\n\n第五步：验证答案\n• 和：38 + 10 = 48 ✓\n• 差：38 - 10 = 28 ✓\n\n【答案】甲是38，乙是10\n\n【小贴士】\n• 和差问题的关键是找出谁大谁小\n• 记住公式：大数=(和+差)÷2，小数=(和-差)÷2\n• 也可以先求出大数，再用和减去大数得到小数',

      '甲乙两数的和是30，甲是乙的2倍，求甲乙两数\n\n【解题思路】\n\n第一步：理解题意\n• 甲 + 乙 = 30（和）\n• 甲 = 乙 × 2（倍数关系）\n• 甲是乙的2倍，所以甲比乙大\n\n第二步：画线段图帮助理解\n乙：|————|\n甲：|————|————|  （是乙的2倍）\n\n一共有3份，总和是30\n\n第三步：求出1份是多少\n• 总共有几份？乙1份 + 甲2份 = 3份\n• 1份 = 总和 ÷ 总份数\n• 1份 = 30 ÷ 3 = 10\n\n第四步：求出甲和乙\n• 乙 = 1份 = 10\n• 甲 = 2份 = 10 × 2 = 20\n\n第五步：验证答案\n• 和：20 + 10 = 30 ✓\n• 倍数：20 ÷ 10 = 2 ✓\n\n【答案】甲是20，乙是10\n\n【小贴士】\n• 倍数问题的关键是找出总共有几份\n• 公式：小数 = 总和 ÷ (倍数 + 1)\n• 大数 = 小数 × 倍数\n• 画线段图可以更清楚地看出份数关系'
    ],
    keyPoints: [
      '【和差问题公式】\n• 大数 = (和 + 差) ÷ 2\n• 小数 = (和 - 差) ÷ 2\n• 或者：小数 = 和 - 大数',

      '【倍数问题公式】\n• 小数 = 总和 ÷ (倍数 + 1)\n• 大数 = 小数 × 倍数\n• 或者：大数 = 总和 - 小数',

      '【解题步骤】\n1. 读题，找出和、差或倍数关系\n2. 画线段图，直观理解题意\n3. 套用公式计算\n4. 验证答案是否正确',

      '【易错提醒】\n• 要分清谁大谁小\n• 和差问题：记得除以2\n• 倍数问题：总份数 = 倍数 + 1（不要忘记+1）\n• 一定要验证答案'
    ]
  },
  {
    id: 'age-problem',
    name: '年龄问题',
    description: '利用年龄差不变的特点解决年龄相关问题',
    gradeLevel: [4, 5, 6],
    difficulty: 2,
    category: '基础计算',
    examples: [
      '爸爸今年39岁，儿子今年9岁，几年后爸爸的年龄是儿子年龄的3倍？',
      '妈妈今年的年龄是女儿的4倍，15年后妈妈的年龄是女儿的2倍'
    ],
    keyPoints: [
      '年龄差永远不变',
      '倍数关系会随时间变化',
      '利用年龄差=倍数差×较小年龄'
    ]
  },
  {
    id: 'average-problem',
    name: '平均数问题',
    description: '利用平均数的性质解决总数、个数、平均数之间的关系问题',
    gradeLevel: [4, 5, 6],
    difficulty: 2,
    category: '基础计算',
    examples: [
      '小华5次数学测验的平均分是92分，前4次的平均分是90分，第5次考了多少分？',
      '甲乙两组学生的平均分分别是80分和85分，合并后的平均分是多少？'
    ],
    keyPoints: [
      '总数=平均数×个数',
      '移多补少的思想',
      '加权平均数的计算'
    ]
  },
  {
    id: 'tree-planting',
    name: '植树问题',
    description: '研究在一定长度上植树的棵数与间隔数关系的问题',
    gradeLevel: [4, 5],
    difficulty: 2,
    category: '基础计算',
    examples: [
      '在100米长的路边植树，每隔5米植一棵，两端都植，共植多少棵？',
      '圆形花坛周长60米，每隔3米植一棵树，共植多少棵？'
    ],
    keyPoints: [
      '两端都植：棵数=间隔数+1',
      '两端不植：棵数=间隔数-1',
      '环形植树：棵数=间隔数'
    ]
  },
  {
    id: 'profit-loss-problem',
    name: '盈亏问题',
    description: '根据分配方案的盈余或亏损情况求解总量和份数的问题',
    gradeLevel: [4, 5],
    difficulty: 3,
    category: '基础计算',
    examples: [
      '分苹果，每人分3个少2个，每人分2个多3个，有多少人多少苹果？',
      '买笔，每支3元少5元，每支2元多4元，有多少钱多少支笔？'
    ],
    keyPoints: [
      '盈亏总额=盈数+亏数',
      '分配差=两种分配方案的差',
      '份数=盈亏总额÷分配差'
    ]
  },

  // 行程问题类
  {
    id: 'meeting-problem',
    name: '相遇问题',
    description: '两个物体相向运动，研究相遇时间、地点的问题',
    gradeLevel: [5, 6],
    difficulty: 3,
    category: '行程问题',
    examples: [
      '两地相距450千米，甲乙两车同时相向而行，甲车每小时60千米，乙车每小时90千米，多长时间相遇？\n\n【解题思路】\n\n第一步：理解题意\n• 两车相向而行（面对面开）\n• 总距离：450千米\n• 甲车速度：60千米/时\n• 乙车速度：90千米/时\n• 求：多长时间相遇\n\n第二步：画图帮助理解\n甲车 →        ← 乙车\n|————450千米————|\n60千米/时    90千米/时\n\n每小时两车合起来走：60 + 90 = 150千米\n\n第三步：理解相对速度\n• 因为两车相向而行，每小时距离缩短\n• 缩短的距离 = 甲速度 + 乙速度\n• 速度和 = 60 + 90 = 150千米/时\n\n第四步：计算相遇时间\n• 相遇时间 = 总距离 ÷ 速度和\n• 相遇时间 = 450 ÷ 150 = 3小时\n\n第五步：验证答案\n• 甲车走的距离：60 × 3 = 180千米\n• 乙车走的距离：90 × 3 = 270千米\n• 总距离：180 + 270 = 450千米 ✓\n\n【答案】3小时后相遇\n\n【小贴士】\n• 相遇问题的关键是"速度和"\n• 两车相向而行，距离每小时缩短"速度和"那么多\n• 可以验证：两车走的距离加起来应该等于总距离',

      'A、B两人相距600米，同时相向而行，A每分钟70米，B每分钟80米，几分钟后相遇？相遇地点距A出发点多远？\n\n【解题思路】\n\n第一步：理解题意\n• 两人相向而行\n• 总距离：600米\n• A速度：70米/分\n• B速度：80米/分\n• 求：相遇时间和相遇地点\n\n第二步：求相遇时间\n• 速度和 = 70 + 80 = 150米/分\n• 相遇时间 = 总距离 ÷ 速度和\n• 相遇时间 = 600 ÷ 150 = 4分钟\n\n第三步：求相遇地点\n• A走的距离 = A速度 × 时间\n• A走的距离 = 70 × 4 = 280米\n• 所以相遇地点距A出发点280米\n\n第四步：验证答案\n• A走的距离：70 × 4 = 280米\n• B走的距离：80 × 4 = 320米\n• 总距离：280 + 320 = 600米 ✓\n\n【答案】4分钟后相遇，相遇地点距A出发点280米\n\n【小贴士】\n• 相遇地点的计算：用其中一人的速度×时间\n• 谁速度快，谁走得远，相遇地点离谁的出发点就远\n• 两人走的距离之和 = 总距离'
    ],
    keyPoints: [
      '【核心公式】\n• 相遇时间 = 总距离 ÷ 速度和\n• 速度和 = 甲速度 + 乙速度\n• 相遇地点 = 某一方速度 × 相遇时间',

      '【关键概念】\n• 相向而行：面对面走，距离越来越近\n• 速度和：两人每小时（或每分钟）距离缩短的总量\n• 相对速度：相向运动时，相对速度 = 速度和',

      '【解题步骤】\n1. 找出总距离和两个速度\n2. 计算速度和\n3. 用总距离除以速度和，得到相遇时间\n4. 如果求相遇地点，用一方速度×时间\n5. 验证：两方距离之和 = 总距离',

      '【易错提醒】\n• 相遇问题用"速度和"，不要用"速度差"\n• 单位要统一（千米/时 或 米/分）\n• 相遇地点要说清楚是距离哪个出发点\n• 验证时，两人走的距离加起来应该等于总距离'
    ]
  },
  {
    id: 'chase-problem',
    name: '追及问题',
    description: '两个物体同向运动，后者追上前者的问题',
    gradeLevel: [5, 6],
    difficulty: 3,
    category: '行程问题',
    examples: [
      '甲乙两车同时从同地出发同向而行，甲车每小时80千米，乙车每小时60千米',
      '小明先走5分钟，小红后出发，小红几分钟后追上小明？'
    ],
    keyPoints: [
      '追及时间=距离差÷速度差',
      '速度差的重要性',
      '同时出发和不同时出发的区别'
    ]
  },
  {
    id: 'circular-problem',
    name: '环形跑道',
    description: '在环形跑道上的相遇和追及问题',
    gradeLevel: [5, 6],
    difficulty: 4,
    category: '行程问题',
    examples: [
      '环形跑道长400米，甲乙两人同时同地同向出发，甲每分钟300米，乙每分钟200米',
      '圆形跑道长800米，两人同时同地反向出发，几分钟后第一次相遇？'
    ],
    keyPoints: [
      '同向：追及时间=跑道长÷速度差',
      '反向：相遇时间=跑道长÷速度和',
      '多次相遇的规律'
    ]
  },
  {
    id: 'water-current-problem',
    name: '流水行船',
    description: '船在有水流的河中航行的问题',
    gradeLevel: [6, 7],
    difficulty: 4,
    category: '行程问题',
    examples: [
      '船在静水中速度20千米/时，水流速度4千米/时，顺流和逆流的速度各是多少？',
      '从A地到B地顺流用3小时，逆流用4小时，求静水速度和水流速度'
    ],
    keyPoints: [
      '顺流速度=静水速度+水流速度',
      '逆流速度=静水速度-水流速度',
      '距离相等的应用'
    ]
  },

  // 几何图形类
  {
    id: 'area-perimeter-problem',
    name: '周长面积',
    description: '平面图形的周长和面积计算及应用',
    gradeLevel: [4, 5, 6],
    difficulty: 2,
    category: '几何图形',
    examples: [
      '长方形的长是8厘米，宽是6厘米，周长和面积各是多少？',
      '正方形的周长是20厘米，面积是多少？'
    ],
    keyPoints: [
      '各种图形的周长面积公式',
      '单位换算',
      '组合图形的计算'
    ]
  },
  {
    id: 'volume-problem',
    name: '立体图形',
    description: '立体图形的表面积和体积计算',
    gradeLevel: [5, 6],
    difficulty: 3,
    category: '几何图形',
    examples: [
      '正方体的棱长是5厘米，表面积和体积各是多少？',
      '圆柱的底面半径3厘米，高8厘米，求表面积和体积'
    ],
    keyPoints: [
      '长方体、正方体的表面积体积',
      '圆柱圆锥的表面积体积',
      '不规则图形的计算方法'
    ]
  },
  {
    id: 'figure-counting',
    name: '图形计数',
    description: '数图形中线段、角、三角形等的个数',
    gradeLevel: [4, 5],
    difficulty: 3,
    category: '几何图形',
    examples: [
      '数一数图中有多少条线段？',
      '数一数图中有多少个三角形？'
    ],
    keyPoints: [
      '有序计数的方法',
      '分类讨论',
      '找规律避免重复和遗漏'
    ]
  },

  // 数论基础类
  {
    id: 'prime-number',
    name: '质数合数',
    description: '质数和合数的概念及其应用',
    gradeLevel: [5, 6],
    difficulty: 3,
    category: '数论基础',
    examples: [
      '100以内的质数有哪些？',
      '判断一个数是质数还是合数'
    ],
    keyPoints: [
      '质数的定义：只有1和它本身两个因数',
      '合数的定义：除了1和它本身还有其他因数',
      '质数的判断方法'
    ]
  },
  {
    id: 'factor-multiple',
    name: '因数倍数',
    description: '因数和倍数的概念及最大公因数、最小公倍数',
    gradeLevel: [5, 6],
    difficulty: 3,
    category: '数论基础',
    examples: [
      '求12和18的最大公因数和最小公倍数',
      '能被2、3、5整除的数的特征'
    ],
    keyPoints: [
      '因数和倍数的关系',
      '求最大公因数的方法',
      '求最小公倍数的方法',
      '整除特征'
    ]
  },
  {
    id: 'odd-even-property',
    name: '奇偶性质',
    description: '奇数和偶数的性质及运算规律',
    gradeLevel: [4, 5],
    difficulty: 2,
    category: '数论基础',
    examples: [
      '奇数+奇数=？偶数+偶数=？',
      '利用奇偶性解决实际问题'
    ],
    keyPoints: [
      '奇数偶数的定义',
      '奇偶性的运算规律',
      '奇偶性在解题中的应用'
    ]
  },

  // 逻辑推理类
  {
    id: 'pattern-finding',
    name: '找规律',
    description: '发现数列、图形等的变化规律',
    gradeLevel: [2, 3, 4, 5],
    difficulty: 2,
    category: '逻辑推理',
    examples: [
      '1, 4, 7, 10, ?, 16',
      '○△○△○△？'
    ],
    keyPoints: [
      '等差数列的规律',
      '图形变化的规律',
      '周期性规律'
    ]
  },
  {
    id: 'logical-reasoning',
    name: '逻辑推理',
    description: '根据条件进行逻辑分析和推理',
    gradeLevel: [4, 5, 6],
    difficulty: 3,
    category: '逻辑推理',
    examples: [
      '甲乙丙三人，一个说真话，一个说假话，一个有时说真话有时说假话',
      '根据线索推断谁是小偷'
    ],
    keyPoints: [
      '假设法',
      '排除法',
      '逻辑关系的分析'
    ]
  },
  {
    id: 'pigeonhole-principle',
    name: '抽屉原理',
    description: '如果有n+1个物体放入n个抽屉，至少有一个抽屉放入2个或以上物体',
    gradeLevel: [5, 6],
    difficulty: 4,
    category: '逻辑推理',
    examples: [
      '13个人中至少有2个人生日在同一个月',
      '任意6个人中，至少有3个人互相认识或3个人互相不认识'
    ],
    keyPoints: [
      '抽屉原理的基本形式',
      '如何构造抽屉',
      '最坏情况的考虑'
    ]
  },
  {
    id: 'inclusion-exclusion',
    name: '容斥原理',
    description: '计算集合并集元素个数的方法',
    gradeLevel: [5, 6],
    difficulty: 4,
    category: '逻辑推理',
    examples: [
      '班上30人，会游泳的20人，会骑车的25人，两样都会的有多少人？',
      '100以内能被2或3整除的数有多少个？'
    ],
    keyPoints: [
      '|A∪B|=|A|+|B|-|A∩B|',
      '韦恩图的应用',
      '三个集合的容斥原理'
    ]
  },

  // 应用问题类
  {
    id: 'work-problem',
    name: '工程问题',
    description: '关于工作效率、工作时间、工作总量的问题',
    gradeLevel: [5, 6],
    difficulty: 3,
    category: '应用问题',
    examples: [
      '甲单独做需要12天，乙单独做需要18天，两人合作需要多少天？\n\n【解题思路】\n\n第一步：理解题意\n• 甲单独做：12天完成\n• 乙单独做：18天完成\n• 求：两人合作需要多少天\n\n第二步：设工作总量为1\n• 工程问题的关键：把整个工程看作"1"\n• 这样计算效率就很方便\n\n第三步：求各自的工作效率\n• 甲的效率 = 工作总量 ÷ 时间\n• 甲的效率 = 1 ÷ 12 = 1/12（每天完成1/12）\n• 乙的效率 = 1 ÷ 18 = 1/18（每天完成1/18）\n\n第四步：求合作效率\n• 合作效率 = 甲效率 + 乙效率\n• 合作效率 = 1/12 + 1/18\n• 通分：1/12 = 3/36，1/18 = 2/36\n• 合作效率 = 3/36 + 2/36 = 5/36\n\n第五步：求合作时间\n• 合作时间 = 工作总量 ÷ 合作效率\n• 合作时间 = 1 ÷ (5/36) = 36/5 = 7.2天\n\n第六步：验证答案\n• 甲12天完成，每天完成1/12\n• 乙18天完成，每天完成1/18\n• 合作7.2天：7.2 × (1/12 + 1/18) = 7.2 × 5/36 = 1 ✓\n\n【答案】两人合作需要7.2天（或7天零4.8小时）\n\n【小贴士】\n• 工程问题的秘诀：把总工程量设为1\n• 效率 = 1 ÷ 时间\n• 合作效率 = 各自效率相加\n• 时间 = 1 ÷ 效率',

      '一项工程，甲乙合作6天完成，甲单独做需要10天，乙单独做需要多少天？\n\n【解题思路】\n\n第一步：理解题意\n• 甲乙合作：6天完成\n• 甲单独做：10天完成\n• 求：乙单独做需要多少天\n\n第二步：设工作总量为1\n• 整个工程 = 1\n\n第三步：求甲的效率\n• 甲的效率 = 1 ÷ 10 = 1/10\n\n第四步：求合作效率\n• 合作效率 = 工作总量 ÷ 合作时间\n• 合作效率 = 1 ÷ 6 = 1/6\n\n第五步：求乙的效率\n• 合作效率 = 甲效率 + 乙效率\n• 乙效率 = 合作效率 - 甲效率\n• 乙效率 = 1/6 - 1/10\n• 通分：1/6 = 5/30，1/10 = 3/30\n• 乙效率 = 5/30 - 3/30 = 2/30 = 1/15\n\n第六步：求乙单独做的时间\n• 乙单独做时间 = 工作总量 ÷ 乙效率\n• 乙单独做时间 = 1 ÷ (1/15) = 15天\n\n第七步：验证答案\n• 甲效率：1/10，乙效率：1/15\n• 合作效率：1/10 + 1/15 = 3/30 + 2/30 = 5/30 = 1/6 ✓\n• 合作时间：1 ÷ (1/6) = 6天 ✓\n\n【答案】乙单独做需要15天\n\n【小贴士】\n• 已知合作时间和一方时间，求另一方时间\n• 步骤：先求各自效率，再用减法求未知效率\n• 公式：乙效率 = 合作效率 - 甲效率\n• 最后：乙时间 = 1 ÷ 乙效率'
    ],
    keyPoints: [
      '【核心公式】\n• 工作效率 = 工作总量 ÷ 工作时间\n• 工作时间 = 工作总量 ÷ 工作效率\n• 工作总量 = 工作效率 × 工作时间',

      '【合作问题】\n• 合作效率 = 甲效率 + 乙效率\n• 合作时间 = 1 ÷ 合作效率\n• 工作总量通常设为1',

      '【解题步骤】\n1. 把工作总量设为1\n2. 求出已知的工作效率（效率 = 1 ÷ 时间）\n3. 根据题目条件列式计算\n4. 求出未知的效率或时间\n5. 验证答案是否正确',

      '【易错提醒】\n• 一定要把工作总量设为1\n• 效率相加时要通分\n• 单位要统一（天、小时等）\n• 合作效率 = 各自效率之和（用加法）\n• 验证：用求出的答案反推，看是否符合题意'
    ]
  },
  {
    id: 'concentration-problem',
    name: '浓度问题',
    description: '关于溶液浓度、溶质、溶剂的问题',
    gradeLevel: [6, 7],
    difficulty: 4,
    category: '应用问题',
    examples: [
      '20%的盐水300克，要配成30%的盐水，需要加多少克盐？',
      '两种不同浓度的酒精混合后的浓度计算'
    ],
    keyPoints: [
      '浓度=溶质÷溶液×100%',
      '溶液=溶质+溶剂',
      '混合前后溶质总量不变'
    ]
  },
  {
    id: 'profit-problem',
    name: '利润问题',
    description: '关于成本、售价、利润、利润率的问题',
    gradeLevel: [6, 7],
    difficulty: 3,
    category: '应用问题',
    examples: [
      '成本80元，利润率25%，售价是多少？',
      '原价100元，打8折后仍有20%的利润，成本是多少？'
    ],
    keyPoints: [
      '利润=售价-成本',
      '利润率=利润÷成本×100%',
      '折扣的计算'
    ]
  },
  {
    id: 'clock-problem',
    name: '时钟问题',
    description: '关于时钟指针角度、重合、垂直的问题',
    gradeLevel: [5, 6],
    difficulty: 4,
    category: '应用问题',
    examples: [
      '3点15分时，时针和分针的夹角是多少度？',
      '一天中时针和分针重合多少次？'
    ],
    keyPoints: [
      '分针每分钟转6度',
      '时针每分钟转0.5度',
      '相对速度5.5度/分钟'
    ]
  },

  // 组合计数类
  {
    id: 'permutation-combination',
    name: '排列组合',
    description: '排列和组合的基本概念及计算方法',
    gradeLevel: [6, 7],
    difficulty: 4,
    category: '组合计数',
    examples: [
      '5个人排成一排，有多少种排法？',
      '从10个人中选3个人，有多少种选法？'
    ],
    keyPoints: [
      '排列考虑顺序，组合不考虑顺序',
      '排列数公式：A(n,m)=n!/(n-m)!',
      '组合数公式：C(n,m)=n!/[m!(n-m)!]'
    ]
  },
  {
    id: 'probability-statistics',
    name: '概率统计',
    description: '概率的基本概念和简单统计',
    gradeLevel: [6, 7],
    difficulty: 3,
    category: '组合计数',
    examples: [
      '抛硬币正面朝上的概率是多少？',
      '从52张牌中抽到红桃的概率是多少？'
    ],
    keyPoints: [
      '概率=有利结果数÷总结果数',
      '概率的取值范围[0,1]',
      '互斥事件概率的加法'
    ]
  },
  {
    id: 'number-puzzle',
    name: '数字谜题',
    description: '数字填空、数字游戏等问题',
    gradeLevel: [4, 5, 6],
    difficulty: 3,
    category: '组合计数',
    examples: [
      '□□×□=□□□，每个□填入不同数字',
      '数独游戏的解法'
    ],
    keyPoints: [
      '位值制度的理解',
      '数字的组合规律',
      '逻辑推理的应用'
    ]
  },
  {
    id: 'magic-square-problem',
    name: '幻方问题',
    description: '数字在方格中的特殊排列',
    gradeLevel: [5, 6],
    difficulty: 4,
    category: '组合计数',
    examples: [
      '3×3幻方的构造',
      '4×4幻方的性质'
    ],
    keyPoints: [
      '每行每列每对角线和相等',
      '幻方的构造方法',
      '幻方的数学性质'
    ]
  },

  // 高级思维类
  {
    id: 'recursive-problem',
    name: '递推关系',
    description: '通过前面的项推导后面的项',
    gradeLevel: [7, 8],
    difficulty: 5,
    category: '高级思维',
    examples: [
      '斐波那契数列：1,1,2,3,5,8,13...',
      '汉诺塔问题的递推关系'
    ],
    keyPoints: [
      '递推关系的建立',
      '初始条件的重要性',
      '数学归纳法的思想'
    ]
  },
  {
    id: 'optimization-problem',
    name: '最值问题',
    description: '求最大值或最小值的问题',
    gradeLevel: [6, 7, 8],
    difficulty: 4,
    category: '高级思维',
    examples: [
      '周长一定的矩形，什么时候面积最大？',
      '用篱笆围成矩形菜园，如何围面积最大？'
    ],
    keyPoints: [
      '函数的最值',
      '几何中的最值',
      '实际问题的优化'
    ]
  },
  {
    id: 'inequality',
    name: '不等式',
    description: '不等关系的表示和应用',
    gradeLevel: [7, 8],
    difficulty: 4,
    category: '高级思维',
    examples: [
      '解不等式：2x+3>7',
      '不等式的性质和应用'
    ],
    keyPoints: [
      '不等式的基本性质',
      '不等式的解法',
      '不等式在实际中的应用'
    ]
  },
  {
    id: 'function-thinking',
    name: '函数思想',
    description: '变量之间的对应关系',
    gradeLevel: [7, 8, 9],
    difficulty: 4,
    category: '高级思维',
    examples: [
      'y=2x+1是什么函数？',
      '函数图像的性质'
    ],
    keyPoints: [
      '函数的定义',
      '函数的表示方法',
      '函数的性质'
    ]
  },
  {
    id: 'coordinate-problem',
    name: '坐标几何',
    description: '用坐标研究几何问题',
    gradeLevel: [7, 8],
    difficulty: 4,
    category: '高级思维',
    examples: [
      '两点间距离公式',
      '直线方程的求法'
    ],
    keyPoints: [
      '坐标系的建立',
      '点的坐标表示',
      '数形结合的思想'
    ]
  },
  {
    id: 'math-modeling',
    name: '数学建模',
    description: '用数学方法解决实际问题',
    gradeLevel: [8, 9],
    difficulty: 5,
    category: '高级思维',
    examples: [
      '人口增长模型',
      '最优路径问题'
    ],
    keyPoints: [
      '问题的数学化',
      '模型的建立和求解',
      '结果的解释和验证'
    ]
  }
];

export const TOPIC_CATEGORIES = [
  '基础计算',
  '行程问题', 
  '几何图形',
  '数论基础',
  '逻辑推理',
  '应用问题',
  '组合计数',
  '高级思维'
];

export const GRADE_LEVELS = {
  1: '一年级',
  2: '二年级', 
  3: '三年级',
  4: '四年级',
  5: '五年级',
  6: '六年级',
  7: '七年级',
  8: '八年级',
  9: '九年级'
};
